package metier;

import java.io.File;

public class Mp3File extends File implements MusicMeta {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private boolean v1;
	private boolean v2;

	private byte[] octetsV1;
	private byte[] octetsV2;
	private String albumv1, titrev1, artistev1, anneev1, commentairev1,
			genrev1, albumv2, titrev2, artistev2, anneev2, commentairev2,
			genrev2;
	private String rangv1, rangv2;

	public Mp3File(String path) {
		super(path);
		this.v1 = false;
		this.v2 = false;
		albumv1 = "";
		titrev1 = "";
		artistev1 = "";
		anneev1 = "";
		commentairev1 = "";
		genrev1 = "";
		albumv2 = "";
		titrev2 = "";
		artistev2 = "";
		anneev2 = "";
		commentairev2 = "";
		genrev2 = "";
	}

	@Override
	public String toString() {
		String str = null;
		if (v2) {

			str = new String("V2 : " + titrev2 + " - " + artistev2 + " - "
					+ albumv2 + " - " + anneev2 + " - " + rangv2 + " - "
					+ genrev2);

		} else if (v1) {

			str = new String("V1 : " + titrev1 + " - " + artistev1 + " - "
					+ albumv1 + " - " + anneev1 + " - " + rangv2 + " - "
					+ genrev1);
		}
		return str;
	}

	public String toStringDebug() {
		String str = null;
		if (v2) {

			System.out.println(new String("V1 : " + titrev1 + " - " + artistev1
					+ " - " + albumv1 + " - " + anneev1 + " - " + rangv2
					+ " - " + genrev1));
			str = new String("V2 : " + titrev2 + " - " + artistev2 + " - "
					+ albumv2 + " - " + anneev2 + " - " + rangv2 + " - "
					+ genrev2);

		} else if (v1) {

			str = new String("V1 : " + titrev1 + " - " + artistev1 + " - "
					+ albumv1 + " - " + anneev1 + " - " + rangv2 + " - "
					+ genrev1);
			System.out.println(new String("V2 : " + titrev2 + " - " + artistev2
					+ " - " + albumv2 + " - " + anneev2 + " - " + rangv2
					+ " - " + genrev2));
		}
		return str;
	}

	@Override
	public String getTitle() {
		if (titrev2 != null && titrev2 != "")
			return titrev2;
		else
			return getTitrev1();
	}

	@Override
	public String getAlbum() {
		if (albumv2 != null && albumv2 != "")
			return albumv2;
		else
			return getAlbumv1();
	}

	@Override
	public String getArtist() {
		if (artistev2 != null && artistev2 != "")
			return artistev2;
		else
			return getArtistev1();

	}

	@Override
	public String getGenre() {
		if (genrev2 != null && genrev2 != "")
			return genrev2;
		else
			return getGenrev1();
	}

	@Override
	public String getYear() {
		if (anneev2 != null && anneev2 != "")
			return anneev2;
		else
			return getAnneev1();
	}

	@Override
	public String getRank() {
		if (rangv2 != null && rangv2 != "")
			return rangv2;
		else
			return getRangv1();
	}

	public String getRangv1() {
		if (rangv1 != null)
			return rangv1;
		else
			return "";
	}

	public String getRangv2() {
		if (rangv2 != null)
			return rangv2;
		else
			return "";
	}

	public String getGenrev1() {
		if (genrev1 != null)
			return genrev1;
		else
			return "";
	}

	public String getgenre() {

		if (genrev2 != null && genrev2 != "")
			return genrev2;
		else
			return getGenrev1();
	}

	public void setGenrev1(String genrev1) {
		if (genrev1 != null) {

			this.genrev1 = genrev1;
		} else
			this.genrev1 = "";
	}

	public String getGenrev2() {
		if (genrev2 != null)
			return genrev2;
		else
			return "";
	}

	public void setGenrev2(String genrev2) {
		if (genrev2 != null)
			this.genrev2 = genrev2.trim();
		else
			this.genrev2 = "";
	}

	public void setRangv1(String rangv1) {
		if (rangv1 != null)
			this.rangv1 = rangv1.trim();
		else
			this.rangv1 = "";

	}

	public void setRangv2(String rangv2) {
		if (rangv2 != null)
			this.rangv2 = rangv2.trim();
		else
			this.rangv2 = "";
	}

	public String getCommentairev1() {
		if (commentairev1 != null)
			return commentairev1;
		else
			return "";
	}

	public void setCommentairev1(String commentairev1) {
		if (commentairev1 != null)
			this.commentairev1 = commentairev1.trim();
		else
			this.commentairev1 = "";
	}

	public String getCommentairev2() {
		if (commentairev2 != null)return commentairev2;
		else return "";
	}

	public void setCommentairev2(String commentairev2) {
		if (commentairev2 != null)
			this.commentairev2 = commentairev2.trim();
		else
			this.commentairev2 = "";
	}

	public byte[] getOctetsV1() {
		return octetsV1;
	}

	public void setOctetsV1(byte[] octetsV1) {
		this.octetsV1 = octetsV1;
	}

	public String getAlbumv1() {
		if (albumv1 != null) {
			return albumv1;
		} else
			return "";
	}

	public void setAlbumv1(String albumv1) {
		if (albumv1 != null)
			this.albumv1 = albumv1.trim();
		else
			this.albumv1 = "";
	}

	public String getTitrev1() {
		if (titrev1 != null) {
			return titrev1;
		} else
			return "";
	}

	public void setTitrev1(String titrev1) {
		if (titrev1 != null)
			this.titrev1 = titrev1.trim();
		else
			this.titrev1 = "";
	}

	public String getArtistev1() {
		if (artistev1 != null) {
			return artistev1;
		} else
			return "";
	}

	public void setArtistev1(String artistev1) {
		if (artistev1 != null)
			this.artistev1 = artistev1.trim();
		else
			this.artistev1 = "";
	}

	public String getAnneev1() {
		if (anneev1 != null)return anneev1;
		else return "";
	}

	public void setAnneev1(String anneev1) {
		if (anneev1 != null)
			this.anneev1 = anneev1.trim();
		else
			this.anneev1 = "";
	}

	public String getAlbumv2() {
		if (albumv2 !=null)return albumv2;
		else return "";
	}

	public void setAlbumv2(String albumv2) {
		if (albumv2 != null)
			this.albumv2 = albumv2.trim();
		else
			this.albumv2 = "";
	}

	public String getTitrev2() {
		if (titrev2 != null)return titrev2;
		else return "";
	}

	public void setTitrev2(String titrev2) {
		this.titrev2 = titrev2.trim();
	}

	public String getArtistev2() {
		if (artistev2 != null)return artistev2;
		else return "";
	}

	public void setArtistev2(String artistev2) {
		this.artistev2 = artistev2.trim();
	}

	public String getAnneev2() {
		if (anneev2 != null)return anneev2;
		else return "";
	}

	public void setAnneev2(String anneev2) {
		this.anneev2 = anneev2.trim();
	}

	public byte[] getOctetsV2() {
		return octetsV2;
	}

	public void setOctetsV2(byte[] octetsV2) {
		this.octetsV2 = octetsV2;
	}

	public byte[] getOctetsTagV1() {
		return octetsV1;
	}

	public void setOctetsTagV1(byte[] octetsTagV1) {
		this.octetsV1 = octetsTagV1;
	}

	public byte[] getOctetsTagV2() {
		return octetsV2;
	}

	public void setOctetsTagV2(byte[] octetsTagV2) {
		this.octetsV2 = octetsTagV2;
	}

	public boolean isV1() {
		return v1;
	}

	public void setV1(boolean v1) {
		this.v1 = v1;
	}

	public boolean isV2() {
		return v2;
	}

	public void setV2(boolean v2) {
		this.v2 = v2;
	}

}
